package com.atguigu.gulimall.member.service;

import com.atguigu.gulimall.member.exception.PhoneExsitException;
import com.atguigu.gulimall.member.exception.UsernameExsitException;
import com.atguigu.gulimall.member.vo.UserLoginVo;
import com.atguigu.gulimall.member.vo.UserRegisterVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.atguigu.common.utils.PageUtils;
import com.atguigu.gulimall.member.entity.MemberEntity;

import java.util.Map;

/**
 * 会员
 *
 * @author laisanshan
 * @email fromzero911@gmail.com
 * @date 2021-07-12 16:40:55
 */
public interface MemberService extends IService<MemberEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 注册会员
     *
     * @param registerVo 注册表单
     */
    void regist(UserRegisterVo registerVo);

    /**
     * 检查用户名是否唯一
     *
     * @param userName 用户名
     * @throws UsernameExsitException 用户已存在
     */
    void checkUsernameUnique(String userName) throws UsernameExsitException;

    /**
     * 检查手机号是否唯一
     *
     * @param phone 手机号
     * @throws PhoneExsitException 手机号已存在
     */
    void checkPhoneUnique(String phone) throws PhoneExsitException;

    /**
     * 用户登录
     *
     * @param vo 登录表单
     * @return 用户信息
     */
    MemberEntity login(UserLoginVo vo);

}

